package com.casic.ops.utils.pipeline;

import com.casic.ops.entity.domain.pipeline.PipelineNodeLoggerDO;
import com.casic.ops.entity.domain.pipeline.PipelineNodeTemplateDO;
import com.casic.ops.entity.dto.pipeline.PipelineNodeLoggerDTO;
import com.casic.ops.entity.dto.pipeline.PipelineNodeTemplateDTO;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;

/**
 * 流水线节点类型转换类
 * @author cww
 * @date 2022/6/17
 */
@Component
public class PipelineNodeTemplateConvertor {

    public PipelineNodeTemplateDO toDO(PipelineNodeTemplateDTO pipelineNodeTemplateDTO){
        PipelineNodeTemplateDO pipelineNodeTemplateDO=new PipelineNodeTemplateDO();
        pipelineNodeTemplateDO.setGmtCreate(pipelineNodeTemplateDTO.getGmtCreate());
        pipelineNodeTemplateDO.setModifier(pipelineNodeTemplateDTO.getModifier());
        pipelineNodeTemplateDO.setCreator(pipelineNodeTemplateDTO.getCreator());
        pipelineNodeTemplateDO.setNodeDescription(pipelineNodeTemplateDTO.getNodDescription());
        pipelineNodeTemplateDO.setGmtModified(pipelineNodeTemplateDTO.getGmtModified());
        pipelineNodeTemplateDO.setDeleted(pipelineNodeTemplateDTO.getDeleted());
        pipelineNodeTemplateDO.setId(pipelineNodeTemplateDTO.getId());
        pipelineNodeTemplateDO.setLabel(pipelineNodeTemplateDTO.getLabel());
        pipelineNodeTemplateDO.setName(pipelineNodeTemplateDTO.getName());
        pipelineNodeTemplateDO.setType(pipelineNodeTemplateDTO.getType());
        pipelineNodeTemplateDO.setUuid(pipelineNodeTemplateDTO.getUuid());
        pipelineNodeTemplateDO.setParentUuid(pipelineNodeTemplateDTO.getParentUuid());
        pipelineNodeTemplateDO.setIcon(pipelineNodeTemplateDO.getIcon());
        return pipelineNodeTemplateDO;

    }

    public PipelineNodeTemplateDTO toDTO(PipelineNodeTemplateDO pipelineNodeTemplateDO){
        PipelineNodeTemplateDTO pipelineNodeTemplateDTO =new PipelineNodeTemplateDTO();
        pipelineNodeTemplateDTO.setGmtCreate(pipelineNodeTemplateDO.getGmtCreate());
        pipelineNodeTemplateDTO.setModifier(pipelineNodeTemplateDO.getModifier());
        pipelineNodeTemplateDTO.setCreator(pipelineNodeTemplateDO.getCreator());
        pipelineNodeTemplateDTO.setNodDescription(pipelineNodeTemplateDO.getNodeDescription());
        pipelineNodeTemplateDTO.setGmtModified(pipelineNodeTemplateDO.getGmtModified());
        pipelineNodeTemplateDTO.setDeleted(pipelineNodeTemplateDO.getDeleted());
        pipelineNodeTemplateDTO.setId(pipelineNodeTemplateDO.getId());
        pipelineNodeTemplateDTO.setLabel(pipelineNodeTemplateDO.getLabel());
        pipelineNodeTemplateDTO.setName(pipelineNodeTemplateDO.getName());
        pipelineNodeTemplateDTO.setType(pipelineNodeTemplateDO.getType());
        pipelineNodeTemplateDTO.setUuid(pipelineNodeTemplateDO.getUuid());
        pipelineNodeTemplateDTO.setParentUuid(pipelineNodeTemplateDO.getParentUuid());
        pipelineNodeTemplateDTO.setIcon(pipelineNodeTemplateDO.getIcon());
        return pipelineNodeTemplateDTO;
    }

    public List<PipelineNodeTemplateDTO> toDTOList(List<PipelineNodeTemplateDO> list){
        List<PipelineNodeTemplateDTO> pipelineNodeTemplateDTOList=new ArrayList<>();
        for(PipelineNodeTemplateDO pipelineNodeTemplateDO:list){
            pipelineNodeTemplateDTOList.add(toDTO(pipelineNodeTemplateDO));
        }
        return pipelineNodeTemplateDTOList;
    }

    public List<PipelineNodeTemplateDO> toDOList(List<PipelineNodeTemplateDTO> list){
        List<PipelineNodeTemplateDO> pipelineNodeTemplateDOList=new ArrayList<>();
        for(PipelineNodeTemplateDTO pipelineNodeTemplateDTO:list){
            pipelineNodeTemplateDOList.add(toDO(pipelineNodeTemplateDTO));
        }
        return pipelineNodeTemplateDOList;
    }

}
